#!/bin/bash 

## @file ctags_php
## 
## @brief ctags para proyectos en php
##
## Generar archivo de ctags para proyecto en php, sobre el directorio donde estamos situados
## 
## dependencias: ctags-exuberant
##
## @author   Eduardo Magrané
##
## @internal
##
##       web  http://www.mamedu.com
##
##      mail  eduardo.mamedu.com
##
##  Revision  SVN $Id: $
##
## Copyright  Copyright (c) 2011, Eduardo Magrané
## 
## This source code is released for free distribution under the terms of the
## GNU General Public License as published by the Free Software Foundation.

 
autor='Eduardo Magrané'
mail='eduardo.mamedu.com'
licencia='GNU/GPL 3.0'
web='http://www.mamedu.com'
prog=`basename $0`
version='1'

# Variables configurables

var_fich_conf="$HOME/.${prog}rc"
desc_var_fich_conf="Archivo de configuración"
var_color=si
desc_var_color='Presentar colores'

function help() {

   local -i count=0
   while read linea ; do 
      let count++
      if [ $count -gt 2 ] ; then
         [ "$linea" = "" ] && return
         echo "$linea" | sed 's/^##//' | sed 's/@brief //' | sed 's/@file //' 
      fi
   done < "$0"
   echo

   }

## Añadimos color
# 
# Uso:
# color <tipo de color> 
# 
# @param color Color a añadir 

color() { if [ "$var_color" = 'si' ] ; then local c=${1:-cNormal} ; echo -e "${!c}" ; fi }

function comprobar_dependencias() {

   local salir=no

   echo
   echo Comprobar dependencias
   for d in $dependencias ; do
   s="`whereis $d`"
   s="${s/#*:}"
   if [ -z "$s" ] ; then
         echo "   - $d `color cError`[NO]`color`"
         salir=si
      else
         echo "   - $d `color cAfirmativo`[si]`color`"
      fi
   done

   if [ "$salir" = "si" ] ; then
      echo
      echo `color cError`Necesitas instalar los programas no encontrados`color`
      exit 1
   fi
}

while [ -n "$1" ] ; do

   case "$1" in
      
      -h|-help|--help) help ; exit ;;
      *) break ;;

   esac

done

#-h ".php.js.inc" \
#--regex-PHP='/abstract class ([^ ]*)/\1/c/' \
#--regex-PHP='/interface ([^ ]*)/\1/c/' \
#--regex-PHP='/(public |static |abstract |protected |private )+function ([^ (]*)/\2/f/' \

ctags-exuberant \
--exclude="\.svn" \
--exclude="doc" \
--exclude="docs" \
--exclude="ext" \
--totals=yes \
--langmap=php:.engine.inc.module.theme.install.php \
--php-kinds=cdfi \
--languages=php \
--tag-relative=yes \
--recurse
